Electronic gaming machines, in a standalone configuration, typically include hardware and software components. The hardware components include video display devices for displaying game play, user input devices for controlling game play, payment devices for accepting money or indicia of credit, and electronic components usually found in computer systems such as a processor, read only memory (ROM), random access memory (RAM), and one or more buses. The software components may include software for generating a game of chance game and software for casino management.
In order to be acceptable for casino use, the software components must be validated with secure methods. Therefore, the software on gaming machines has been designed to be static and monolithic pursuant to regulations to prevent cheating by the operator of the gaming machine. One solution that has been employed in the gaming industry has been to manufacture gaming machines that can use a proprietary processor running instructions to generate the game of chance from an EPROM or other form of non-volatile memory. The coding instructions on the EPROM are static (non-changeable) and must be approved by a gaming regulators in a particular jurisdiction and installed in the presence of a person representing the gaming jurisdiction. Any changes to any part of the software required to generate the game of chance, such as adding a new device driver used by the master gaming controller to operate a device during generation of the game of chance can require a new EPROM to be burnt, approved by the gaming jurisdiction and reinstalled on the gaming machine in the presence of a gaming regulator. The software for casino management are subject to similar regulations, and therefore, have also used similar non-volatile memory techniques.
In addition to the standalone configuration described above, gaming machines may operate in server-client network configurations. Here, a server stores and executes the software components, sending video output to a client terminal for display. The client terminal receives user input and sends the input to the central server for game interaction and casino management interaction. In the server-client configuration, one or more servers may generate the game of chance from the EPROM or other form of non-volatile memory. The validation process is similar to the process for the standalone configuration, except the EPROM is at the server rather than the standalone gaming machine. One or more servers may further generate casino management services in a similar fashion.
A gaming machine may also be configured such that the software for generating the game of chance may run in a standalone configuration on the gaming machine while the casino management software runs in a server-client network configuration.
As gaming machine systems transition to utilize software components running on virtual machines on remote servers, there is a need to securely validate the software components on the virtual machines. As the server-client networks become cloud computing networks providing on-demand wager gaming and/or casino management services, there is a need to manage and validate versioned software components serving clients in different regulatory jurisdictions, all without disrupting live gaming operations.